home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Applications 1996 May / SGI IRIX 6.2 Applications 1996 May.iso / dist / impr_dev.idb / usr / impressario / src / drivers / laserjetPJL / laserjetPJL.h.z / laserjetPJL.h
C/C++ Source or Header  |  1996-05-06  |  5KB  |  145 lines

  1. /**************************************************************************
  2.  *
  3.  *           Copyright (c)    1992 Silicon Graphics, Inc.
  4.  *            All Rights Reserved
  5.  *
  6.  *       THIS    IS UNPUBLISHED PROPRIETARY SOURCE CODE OF SGI
  7.  *
  8.  * The copyright notice above does not evidence any actual of intended
  9.  * publication of such source code, and is an unpublished work by Silicon
  10.  * Graphics, Inc. This material contains CONFIDENTIAL INFORMATION that is
  11.  * the property of Silicon Graphics, Inc. Any use, duplication or
  12.  * disclosure not specifically authorized by Silicon Graphics is strictly
  13.  * prohibited.
  14.  *
  15.  * RESTRICTED RIGHTS LEGEND:
  16.  *
  17.  * Use, duplication or disclosure by the Government is subject to
  18.  * restrictions as set forth in subdivision (c)(1)(ii) of the Rights in
  19.  * Technical Data and Computer Software clause at DFARS 52.227-7013,
  20.  * and/or in similar or successor clauses in the FAR, DOD or NASA FAR
  21.  * Supplement. Unpublished - rights reserved under the Copyright Laws of
  22.  * the United States. Contractor is SILICON GRAPHICS, INC., 2011 N.
  23.  * Shoreline Blvd., Mountain View, CA 94039-7311
  24.  **************************************************************************
  25.  *
  26.  * Description:
  27.  *    Printer driver for HP LaserJet family of printers.
  28.  * 
  29.  * See Also:
  30.  *    laserjetPJL.c
  31.  * 
  32.  **************************************************************************/
  33.     
  34. #include <unistd.h>
  35. #include <signal.h>
  36. #include <getopt.h>
  37. #include <stdlib.h>
  38. #include <stdio.h>
  39. #include <malloc.h>
  40. #include <string.h>
  41. #include <bstring.h>
  42. #include <sys/file.h>
  43. #include <sys/types.h>
  44. #include <sys/wait.h>
  45. #include <errno.h>
  46. #include <fcntl.h>
  47.  
  48. #include <pod.h>
  49. #include <printstiff.h>
  50.  
  51. #include <sys/prctl.h>
  52. #include "safeMemory.h"
  53.  
  54. /* A few global vars and constants defined here: */
  55. typedef unsigned int     boolean;
  56.  
  57. #define FALSE 0
  58. #define TRUE  1
  59.  
  60. /* Debugging message levels of detail */
  61.  
  62. #define COARSEDETAIL 1
  63. #define MEDIUMDETAIL 2
  64. #define FINEDETAIL   3
  65.  
  66. /* Page validation masks, by resolution */
  67.  
  68. #define PAGEMASK_300     0x20
  69. #define PAGEMASK_600     0x40
  70.  
  71. /* Masks for full-bleed B size on 4V */
  72.  
  73. #define PAGEMASK_BLEED_300     0x01
  74. #define PAGEMASK_BLEED_600     0x02
  75.  
  76. /* Default paper size support, change these for different defaults */
  77.  
  78. #define LJ_DEFAULT_PAGE_SIZE       PD_SIZE_A
  79.  
  80. /* Whether options are from command line or image header */
  81.  
  82. #define COMMANDLINE 0
  83. #define IMAGEHEADER 1
  84. #define MAXNUMARGS  512  /* max number of imageheader options line args */
  85. static  const char* DELIMITER_STRING = " \t\n";  /* String word separators */
  86.  
  87. /* Data formats allowed */
  88.  
  89. static unchar IMAGE_FORMATS[][8] = { "Unknown", "Packed", "Planar" };
  90. #define N_IMAGE_FORMATS  (sizeof IMAGE_FORMATS / sizeof IMAGE_FORMATS[0])
  91.  
  92. static unchar IMAGE_TYPES[][8] = { "K", "W", "RGB", "CMAP", 
  93.                                    "MASK", "CMY[K]", "YMC", "YMCK", "UNKNOWN" };
  94.  
  95. #define N_IMAGE_TYPES (sizeof IMAGE_TYPES / sizeof IMAGE_TYPES[0])
  96.  
  97. #define DEFAULT_MSG NULL            /* Used in add_error_message */
  98.  
  99. /* Exit codes on errors.  XXX These should be in the man page. */
  100.  
  101. #define  NO_ERROR               0
  102. #define  UNKNOWN                1
  103. #define  BAD_ARG                2
  104. #define  BAD_POD_ACCESS         3
  105. #define  BAD_DEVICE_NAME        4
  106. #define  BAD_DEVICE_TYPE        5
  107. #define  BAD_STATUS_UPDATE      6
  108. #define  BAD_DEVICE_ACCESS      7
  109. #define  BAD_MEMORY_REFERENCE   8
  110. #define  BAD_MEMORY_ALLOC       9
  111. #define  BAD_DATA_FORMAT       10
  112. #define  BAD_DATA_HEADER       11
  113. #define  BAD_DATA_SHORT_FILE   12
  114. #define  BAD_CODE_SHORT_FILE   13
  115. #define  BAD_DATA_FILE         14
  116. #define  BAD_TRANSMISSION      15
  117. #define  BAD_DATA_BUFFER       16
  118. #define  BAD_TEST_PRINT        17
  119. #define  BAD_COMPRESSION       18
  120.  
  121. /***********************************************************************
  122.  *
  123.  * Prototypes: 
  124.  *
  125.  ***********************************************************************/
  126.  
  127. void set_program_name(const char* name);
  128. void hold_signals(void);
  129. void release_signals(void);
  130. void print_usage_message(void);
  131. void process_header_options(char* options);
  132. boolean process_args(int argc, char* argv[]);
  133. int initialize_printer(FILE *out);
  134. void cleanup_and_quit(const int exitcode);
  135. void setup_signal_handler(void);
  136. boolean read_image_header(STStream *datafile, PSTImageHeader *imghdr);
  137. void print_image_info(PSTImageHeader *imghdr);
  138. boolean read_image_data(STStream* datafile, int imgbytes, unchar* pagebuf);
  139. boolean is_valid_format(PSTImageHeader *imghdr );
  140. boolean send_image(FILE *out, PSTImageHeader *imghdr, unchar *imagebuffer);
  141. void add_error_message(const int error_code, const char* error_string);
  142. int update_status(const int cur_status);
  143. void send_pcl_file(void);
  144. void send_stiff_file(void);
  145.